﻿/*
 * HardwareCommunicationImpl.cs
 * Written by: Shawn Gilleland
 * 
 * This is an abstraction class that must be implemented by classes
 * that interact directly with hardware for Supply Fetch.  This is
 * the interface class for the Hardware Communication Gateway 
 * Subsystem that uses the Bridge Pattern.
 */

using Supply_Fetch;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IndicationLayer
{
    interface HardwareCommunicationImpl
    {
        void ActivateAllDrawers();

        void ActivateDrawers(List<Drawer> drawers);

        void ConnectToSerialPort();

        bool SerialPortIsOpen();

        void DisposeSerialPort();

        void CloseCommunicationPort();

        void DeactivateAllDrawers();

        void CommunicationWait(int t);

        void ActivateLED(int LED_ID);

        void DeactivateLED(int LED_ID);

        void CloseSerialPort();
    }
}
